#include<stdio.h>
#include<stdlib.h>

int g_unval;
int g_val =100;

int main(int argc,char* argv[],char* env[])
{
    printf("正文代码:%p\n",main);
    printf("初始化数据:%p\n",&g_val);
    printf("未初始化数据:%p\n",&g_unval);

    int* heap1=(int*)malloc(sizeof(int)*1);
    int* heap2=(int*)malloc(sizeof(int)*1);
    int* heap3=(int*)malloc(sizeof(int)*1);

    printf("堆区地址 heap1:%p\n",heap1);
    printf("堆区地址 heap2:%p\n",heap2);
    printf("堆区地址 heap3:%p\n",heap3);

    printf("栈区地址 &heap1:%p\n",&heap1);
    printf("栈区地址 &heap2:%p\n",&heap2);
    printf("栈区地址 &heap3:%p\n",&heap3);

    printf("命令行参数地址 &argv[0]:%p\n",&argv[0]);
    printf("环境变量 &env[0]:%p\n",&env[0]);

    return 0;
}